import java.util.*;
public class Day2 {
    public static void main(String[] args) {
        int[][] arr = {{1,2,2,3,5},{3,2,3,4,4},{2,4,5,3,1},{6,7,1,4,5},{5,1,1,2,4}};
        System.out.println("今天敷衍一下，写一个hello world");
    }
    //417.太平洋大西洋水流问题
    int[] dx = {1,-1,0,0};
    int[] dy = {0,0,1,-1};
    int m,n;
    public List<List<Integer>> pacificAtlantic(int[][] heights) {
        m = heights.length;
        n = heights[0].length;
        int[][] Pacific= new int[m][n];
        int[][] Atlantic= new int[m][n];
        //记录太平洋
        for(int i=0;i<n;i++) {//第一行
            if(Pacific[0][i] != 1)
                floodfill(heights,0,i,Pacific);
        }
        for(int i=0;i<m;i++) {//第一列
            if(Pacific[i][0] != 1)
                floodfill(heights,i,0,Pacific);
        }
        //纪录大西洋
        for(int i=0;i<m;i++) {//最后一列
            if(Atlantic[i][n-1] != 1)
                floodfill(heights,i,n-1,Atlantic);
        }
        for(int i=0;i<n;i++) {//最后一行
            if(Atlantic[m-1][i] != 1)
                floodfill(heights,m-1,i,Atlantic);
        }
        //记录结果
        List<List<Integer>> ret = new ArrayList<>();
        for(int i=0;i<m;i++)
            for(int j=0;j<n;j++) {
                if(Pacific[i][j] == Atlantic[i][j] && Pacific[i][j] == 1) {
                    List<Integer> tmp = new ArrayList<>();
                    tmp.add(i);
                    tmp.add(j);
                    ret.add(new ArrayList(tmp));
                }
            }
        return ret;
    }
    //x=0||y=0  &&  x=m-1||y=n-1
    public void floodfill(int[][] nums,int i,int j,int[][] check) {
        check[i][j]++;
        for(int k=0;k<4;k++) {
            int x = i + dx[k];
            int y = j + dy[k];
            if(x>=0&&x<m&&y>=0&&y<n && check[x][y]!=1 && nums[x][y]>=nums[i][j])
                floodfill(nums,x,y,check);
        }
    }
}
